#ifndef _PROGRESS_H_DACHI_
#define _PROGRESS_H_DACHI_

#include <vector>
#include <fstream>
#include "Items/Item.h"

enum progress {
	TALK_GANDALF,
	KILL_GANDALF,
	COMPLETE_GANDALF,
	TALK_ELROND,
	KILLED_TROLL,
	GET_KEY,
	NONE
};

class Progress{
	
	public:
	
	friend bool saveProgress(Progress & prog, std::ofstream & savestream);
	friend Progress* loadProgress(std::ifstream& input);
	
	struct ach
	{
		ach(progress p):
		p(p),
		xp(0),
		item(NULL)
		{}
		
		ach(progress p, int xp):
		p(p),
		xp(xp),
		item(NULL)
		{}
		
		ach(progress p, int xp,Item * i):
		p(p),
		xp(xp),
		item(i)
		{}
		progress p;
		int xp;
		Item * item;
	};
	
	Progress();
	~Progress();
	
	void addProgress(progress p);
	
	bool achieved(progress p);
	
	private:
	std::vector<progress> prog;
	
};

#endif
